.\"	$OpenBSD: vis.1,v 1.15 2010/08/24 23:49:06 djm Exp $
.\"	$NetBSD: vis.1,v 1.5 1994/11/17 07:56:00 jtc Exp $
.\"
.\" Copyright (c) 1989, 1991, 1993, 1994
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)vis.1	8.4 (Berkeley) 4/19/94
.\"
.Dd $Mdocdate: August 24 2010 $
.Dt VIS 1
.Os
.Sh NAME
.Nm vis
.Nd display non-printable characters in a visual format
.Sh SYNOPSIS
.Nm vis
.Op Fl abcflnostw
.Op Fl F Ar foldwidth
.Op Ar
.Sh DESCRIPTION
.Nm
is a filter for converting non-printable characters
into a visual representation.
It differs from
.Ic cat -v
in that
the form can be unique and invertible.
By default, all non-printing
characters except space, tab, and newline are encoded,
as are any meta-characters
.Pq eighth bit set .
A detailed description of the
various visual formats is given in
.Xr vis 3 .
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl a
Encode all characters, whether originally visible or not.
.It Fl b
Turns off prepending of backslash before up-arrow control sequences
and meta-characters, and disables the doubling of backslashes.
This produces output which is neither invertible nor precise, but does
represent a minimum of change to the input.
It is similar to
.Ic cat -v .
.It Fl c
Request a format which displays a small subset of the
non-printable characters using C-style backslash sequences.
.It Fl F Ar foldwidth
Causes
.Nm
to fold output lines to
.Ar foldwidth
columns, like
.Xr fold 1 ,
except
that a hidden newline sequence is used, (which is removed
when inverting the file back to its original form with
.Xr unvis 1 ) .
If the last character in the encoded file does not end in a newline,
a hidden newline sequence is appended to the output.
This makes
the output usable with various editors and other utilities which
typically don't work with partial lines.
.It Fl f
Like
.Fl F ,
except output is always folded to 80 columns.
.It Fl l
Mark newlines with the visible sequence
.Ql \e$ ,
followed by the newline.
.It Fl n
Turns off any encoding, except for the fact that backslashes are
still doubled and hidden newline sequences inserted if
.Fl f
or
.Fl F
is selected.
When combined with the
.Fl f
flag,
.Nm
becomes like
an invertible version of the
.Xr fold 1
utility.
That is, the output
can be unfolded by running the output through
.Xr unvis 1 .
.It Fl o
Request a format which displays non-printable characters as
an octal number, \eddd.
.It Fl s
Only characters considered unsafe to send to a terminal are encoded.
This flag allows backspace, bell, and carriage return in addition
to the default space, tab, and newline.
Meta-characters that are considered graphic characters by
.Xr isgraph 3
are not encoded.
.It Fl t
Tabs are also encoded.
.It Fl w
White space (space-tab-newline) is also encoded.
.El
.Sh SEE ALSO
.Xr unvis 1 ,
.Xr vis 3
.Sh HISTORY
The
.Nm
command appeared in
.Bx 4.4 .
